import java.util.*;

public class Main {

    public static void main(String[] args) {
        int[] D = new int[]{5,5,5,5};
        int[] C = new int[]{8,3,3,4};
        int P = 6;
        int res = loadItem(D,C,P);
        System.out.println(res);
    }

    public static int loadItem(int[] D, int[] C,int P){
        int len = D.length;
        //用一个二维数组记录加载对应距离的物体需要消耗的资源
        int[][] dic = new int[len][2];
        for(int i = 0 ; i < len ; i++){
            dic[i][0] = D[i];
            dic[i][1] = C[i];
        }
        //对数组排序，lambda表达式。
        //如果距离相等，就按消耗増序排列；如果距离不等，则按照距离増序排列
        Arrays.sort(dic, (o1,o2) -> o1[0] == o2[0] ? o1[1] - o2[1] : o1[0] - o2[0]);
        int count = 0;
        for(int j = 0 ; j < len ; j++){
            if(dic[j][1] <= P){
                count++;
                P -= dic[j][1];
            }else{
                break;
            }
        }
        return count;
    }
}
